<?php

class AdministradorControlador {
	
	private $adminDao;
	
	public function __construct() {
		$this->adminDao = new AdministradorDAO();	
	}
	
	private function atualizaUltimoAcesso($admin) {
	
		if($admin instanceof Administrador){
	
			$admin->setUltimoAcesso(date('Y-m-d H:i:s'));
	
			$this->adminDao->atualizar($admin);
		}
	
	
	}
	
	public function login($vetor) {
    	session_start();
    	
    	$retorno = array();
        
    	//eu s� vou t login e senha aqui
        $adminSearch = new AdministradorSearch();

        $adminSearch->setEmail($vetor['email']);
        
        if ($this->adminDao->contem($adminSearch)==1) {
        	
        	$adminArray = $this->adminDao->buscarTodosSerach($adminSearch);
        	
        	//print_r($adminArray);

        	$adminCompara = $adminArray[0];
        	
        	if (md5($vetor['senha']) == $adminCompara->getSenha()) {
            	
        		$_SESSION['admin'] = $adminCompara;
        		$_SESSION['logged'] = 1;
            	
        		//chamar registra login
            	//$this->registrarLog();
            	$this->atualizaUltimoAcesso($adminCompara);
                
        		$retorno['codigo'] = 0;
        		$retorno['mensagem'] = "Login efetuado com sucesso!";
        		
        		
            }
            else {
            	 //senha incorreta
            	$retorno['codigo'] = 1;
            	$retorno['mensagem'] = "Senha Incorreta";
            	
            }
        }
        else{ 
        	 //usu�rio n�o cadastrado
        	$retorno['codigo'] = 2;
        	$retorno['mensagem'] = "Usu�rio n�o cadastrado";
        }
        
        return $retorno;
   	}
	
   	public function logout() {
   		session_start();
   	
   		if (isset($_SESSION['logged'])) {
   			unset($_SESSION['logged']);
   			unset($_SESSION['user']);
   		}
   	
   		session_destroy();
   	}
   	
   	public function verificaLogin() {
   		session_start();
   	
   		if (isset($_SESSION['logged'])) {
   			return true;
   		}
   		else{
   			
   			return false;
   		}
   	
   		
   	}

   	public function mudarSenha($vetor) {
   		session_start();
   	
   		if(isset($_SESSION['admin']) && isset($_SESSION['logged'])){
   	
   			$admin = $_SESSION['admin'];
   	
   			$senha = $admin->getSenha();
   	
   			if ($senha != $vetor['senha']) {
   	
   				$retorno['codigo'] = 1;
   				$retorno['mensagem'] = "Senha incorreta";
   			}
   			else if ($vetor['novaSenha'] != $vetor['confirmeSenha']){
   				$retorno['codigo'] = 2;
   				$retorno['mensagem'] = "Campos de senha n�o conferem";
   			}
   			else {
   				//cripografia
   				$admin->setSenha($vetor['novaSenha']);
   				$this->adminDao->atualizar($user);
   				$retorno['codigo'] = 0;
   				$retorno['mensagem'] = "Atualiza��o feita com sucesso!";
   			}
   	
   		}
   		else{
   			session_destroy();
   			$retorno['codigo'] = 3;
   			$retorno['mensagem'] = "Acesso Indevido";
   		}
   	
   		return $retorno;
   	}

   	public function registrarNovo($vetor) {

   		$admSearch = new AdministradorSearch();
   		$admSearch->setEmail($vetor['email']);
   	
   		if ($this->adminDao->contem($admSearch)===0) {
   			if ($vetor['senha'] == $vetor['confirmeSenha']) {
   	
   				$novo_admin = Administrador::construct($vetor);
   	
   				$this->adminDao->inserir($novo_admin);
   	
   				$retorno['codigo'] = 0;
   				$retorno['mensagem'] = "Usu�rio cadastrado com sucesso!";
   	
   	
   			}
   			else {
   				//senha incorreta
   				$retorno['codigo'] = 1;
   				$retorno['mensagem'] = "Campos de senha com valores diferentes";
   	
   			}
   		}
   		else{
   			//usu�rio n�o cadastrado
   			$retorno['codigo'] = 2;
   			$retorno['mensagem'] = "Usu�rio j� cadastrado";
   		}
   	
   		return $retorno;
   	}
   	
   	/*private function escreveLog($nomeArquivo, $nomeUsuario) {
		$arq = fopen($nomeArquivo, "a+");
		$data = date('Y-m-d');
		$horario = date('H:i:s');
		
		if ($arq) {
			$tamanho = filesize($nomeArquivo);
			if ($tamanho/1024 < 10) {
				fwrite($arq, "Usuario: ".$nomeUsuario." ".$horario." - ".$data."\n");
				fclose($arq);	
			}
			else {
				$novoNome = date('Ymd_His')."(".$nomeArquivo.")";
				echo "Novo nome: $novoNome<br>";
				$novo_arq = fopen($novoNome, "w+");
				if ($novo_arq) {
					copy($nomeArquivo, $novoNome);
				}
				
				$arq = fopen($nomeArquivo, "w+");
				if ($arq) {
					fwrite($arq, "Usuario: ".$nomeUsuario." ".$horario." - ".$data."\n");
					fclose($arq);
				}
			}
			return true;
		}
		
		else
			return false;
	}*/
	
	/*private function registrarLogin() {
		$user = $_SESSION['user'];
		$nome = $user->getNome();
		
		if ($this->escreveLog("entradas.log", $nome))
			return true;
		else 
			return false;
	}*/
	
	
	

	
	/*public function recuperaSenha($email) {
		$user = new Usuario("", $email, "");
		
		if ($this->userDao->contem($user)) {
			$novoUser = $this->userDao->buscaIgual($user);
			$senha = $novoUser->getSenha();
			
			//enviar um email para o usuario com a senha
			$subject = "Solicita��o de esqueci minha senha.";
			$message = "Sua senha �: $senha";
			//if	(mail($email, $subject, $message)) {
				//echo "Email enviado com sucesso.";
				return "Assunto: $subject<br>Mensagem: <br>$message";
			//}
			//else  {
				//echo "Falha no envio da mensagem.";
			//}
		}		
		else {
			echo "Usuario n�o cadastrado";
		}

	}*/
	

	

	/*public function atualizar($idUsuario, $nome) {
		$user = $this->userDao->buscar($idUsuario);
		
		if ($nome != "") {
			$user->setNome($nome);
			$this->userDao->atualizar($user);
			return true;	
		}
		else
			return false;
	} */
   	
 
}
?>